home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / games.arc / ABM2.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  7.5 KB  |  232 lines

  1. 10  REM  ABM 2 WRITTEN BY ED DAVIS...THIS VERSION 7/18/82
  2. 20  GOSUB 1930:KEY OFF:ABM%=0
  3. 25  GOSUB 10000
  4. 30  CLS:SCREEN 0,1:LOCATE 3,10:PRINT"Before we begin...."
  5. 32  LOCATE 23,30:COLOR 1:PRINT"EMD 7/82";:COLOR 7
  6. 35  LOCATE 6,3:COLOR 14:PRINT"ENEMY ROCKET PERFORMANCE HANDICAP:":COLOR 7:PRINT:PRINT"  0=MISSION-IMPOSSIBLE  1=VERY FAST":PRINT:PRINT"  2=EXPERT            ";:COLOR 2:PRINT"  3=NORMAL":PRINT
  7. 36  COLOR 7:INPUT ;"  4=PRACTICE            5=JUNIOR   ";RS%
  8. 40  DIM T%(1,5):DIM M(6,15):DIM CH%(66)
  9. 50  GOSUB 1010
  10. 60  GOTO 770
  11. 70  ' BEGIN MAIN ROUTINE
  12. 80  REM  STICK COMMANDS WERE HERE
  13. 90  IF ABM% THEN GOTO 170
  14. 100  GOTO 1600
  15. 110  PUT(LX,LY),CH%:PUT(X,SY),CH%:LX=X:LY=SY
  16. 120  IF ABM% THEN GOTO 170
  17. 130  IF B%=0 GOTO 260
  18. 140  B%=0
  19. 150  DX=LX+10:DY=LY+10:LINE (168,160)-(DX,DY),3:ABM%=1:RR=1
  20. 160  PUT(LX,LY),CH%:LX=158:LY=150:PUT (LX,LY),CH%
  21. 170  RR=1+RR:CIRCLE (DX,DY),RR,2
  22. 180  IF RR<11 THEN GOTO 260
  23. 190  ABM%=0:LINE (168,160)-(DX,DY),0:CIRCLE (DX,DY),10,0:LINE (DX-11,DY-10)-(DX+11,DY+10),0,BF
  24. 200  I=-1
  25. 210  I=I+1:IF I>15 THEN GOTO 260
  26. 220  IF M(0,I)=0 THEN GOTO 210
  27. 230  IF ABS(M(2,I)-DX)<WH%+1 AND  ABS (M(3,I)-DY)<WH% THEN PLAY "MBL16O0DCAB":GOTO 250
  28. 240  GOTO 210
  29. 250  LINE (M(5,I),M(6,I))-(M(2,I),M(3,I)),O:M(0,I)=0:SC=SC+(10-WH%)
  30. 260  IF CT%< RS% THEN CT%=CT%+1:GOTO 70
  31. 270  CT%=0
  32. 280  N=0:FOR I=0 TO 15
  33. 290  IF M(0,I)<>1 THEN N=N+1:GOTO 330
  34. 300  M(2,I)=M(2,I)+M(4,I):M(3,I)=M(3,I)+1:PSET (M(2,I),M(3,I)),3
  35. 310  IF M(3,I)>159 THEN GOSUB 460
  36. 320  IF (M(3,I)>70) AND (FLAG%=0) THEN FLAG%=123:MIRV%=I:SOUND 50,2
  37. 330  NEXT I:IF MR=0 AND N>15 THEN GOTO 1370
  38. 340  IF FLAG%=123 THEN GOTO 400
  39. 350  IF RND(1)<0.96 THEN GOTO 70
  40. 360  I=0
  41. 370  I=I+1:IF M(0,I)=2 THEN M(0,I)=1:GOTO 70
  42. 380  IF I=11 THEN LOCATE 1,3:PRINT "ENEMY HAS LAUNCHED ALL MISSLES":MR=0:GOTO 70
  43. 390  GOTO 370
  44. 400  FLAG=-1:N=0:PT%=M(1,MIRV%):TT%=PT%+1
  45. 410  N=N+1:TT%=TT%+1:IF TT%>5 THEN TT%=TT%-6
  46. 420  I=N+11: M(0,I)=1:M(1,I)=TT%:M(2,I)=M(2,MIRV%):M(3,I)=M(3,MIRV%):M(5,I)=M(2,I):M(6,I)=M(3,I)
  47. 430  M(4,I)=(T%(1,TT%)-M(5,I))/90
  48. 440  IF N<4  THEN FLAG%=-1:GOTO 410
  49. 450  GOTO 70
  50. 460  '  MISSLE EXPLODE
  51. 470  FOR R=6 TO 36:IF R<30 THEN CIRCLE (M(2,I),160),R,2
  52. 480  CIRCLE (M(2,I),160),R-5,0:SOUND 36+3*R,1
  53. 490  NEXT R
  54. 500  T%(0,M(1,I))=0:LINE(M(5,I),M(6,I))-(M(2,I),M(3,I)),0
  55. 510  M(0,I)=0
  56. 520   FOR I=0 TO 5:IF T%(0,I)=1 THEN RETURN
  57. 530  NEXT I:RETURN 540
  58. 540  REM ALL CITIES HAVE BEEN DESTROYED
  59. 550  CLS:COLOR 4,7:LOCATE 6,9:PRINT"YOU SHOULD BE DEMOTED!"
  60. 560  LOCATE 10,5:PRINT"ALL CITIES HAVE BEEN DESTROYED"
  61. 570  LOCATE 15,6 :PRINT"YOUR SCORE IS ";SC;" POINTS."
  62. 580  LOCATE 17,2:PRINT"THE HIGHEST SCORE TODAY IS ";HSC;" POINTS."
  63. 590  LOCATE 24,5:PRINT"DO YOU WISH TO PLAY AGAIN (Y/N)?"
  64. 600  IF SC>HSC THEN HSC=SC
  65. 610  K$=INKEY$:IF K$="" THEN 610
  66. 620  IF K$="Y" OR K$="y" THEN GOTO 60
  67. 630  IF K$="N" OR K$="n" THEN CLS:END
  68. 640  GOTO 610
  69. 650  END
  70. 660  FOR I=0 TO 11
  71. 670  M(0,I)=2:M(5,I)=INT(RND(1)*280)+20:M(2,I)=M(5,I):M(6,I)=0:M(3,I)=0
  72. 680  NEXT I
  73. 690  FOR I=0 TO 11
  74. 700  II=I:IF I>5 THEN II=I-6
  75. 710  M(4,I)=(T%(1,II)-M(5,I))/160:M(1,I)=II
  76. 720  NEXT I
  77. 730  M(0,0)=1:REM THIS ENABLES ONLY ONE MISSLE ******
  78. 740  MR=16:' SET NUMBER OF MISSLES
  79. 750  RETURN
  80. 760  STOP
  81. 770  '  >>>>>>> INITIATION <<<<<<<<
  82. 780  '    ED DAVIS  9-1-82   LEVEL 1
  83. 790  NM%=11:FLAG%=0:MIRV%=33:SC=0:X=100:Y=100:LX=100:LY=100
  84. 800  RANDOMIZE VAL(RIGHT$(TIME$,2))
  85. 810  SCREEN 1,0:COLOR 0,1:WIDTH 40:KEY OFF:CLS
  86. 820  CIRCLE (110,110),5,3
  87. 830  LINE (100,110)-(105,110):LINE (115,110)-(120,110)
  88. 840  LINE (110,100)-(110,105):LINE (110,115)-(110,120)
  89. 850  GET (100,100)-(120,120),CH%:CLS
  90. 860  FOR I= 0 TO 5
  91. 870  T%(0,I)=1:T%(1,I)=48*(I+1)
  92. 880  NEXT I
  93. 890  GOSUB 660:REM TARGETING ROUTINE 12 MISSLES (6 TARGETS)
  94. 900  '>> DRAW AND LABEL CITIES <<
  95. 910  SCREEN 1,0:COLOR 0,0
  96. 920  CT$="U2R4U18R7D8R3D3R3U9R3D7R5D4R3D5R5D2"
  97. 930  CT2$="U5R1U3R1D3R2U3R1D3R2U3R1D3R2U3R1D3R2D3R1U1R1U10R1U1R3D1R1D6R3U10R4D14R5D3"
  98. 940  CT3$="U20R6D18R1U5R2U8E2F2D5R1D9R2U9R1U9R4D13R3U9R6D5R2D10"
  99. 950  PSET(0,180):DRAW "R32;X"+VARPTR$(CT2$)+"R16;X"+VARPTR$(CT$)
  100. 960  DRAW "R16;X"+VARPTR$(CT3$)+"R5U10R6D10R5;X"+VARPTR$(CT$)+"R16;X"+VARPTR$(CT2$)+"R16;X"+VARPTR$(CT$)+"R16;"
  101. 970  PAINT (120,190),3
  102. 980  LOCATE 25,5:PRINT"BTV";:LOCATE 25,11:PRINT "FSH";:LOCATE 25,17:PRINT"HPN";:LOCATE 25,24:PRINT"MAN";:LOCATE 25,30:PRINT "RAL";:LOCATE 25,36:PRINT"BOC";:LOCATE 1,1:PRINT"";
  103. 990  LX=120:LY=100:PUT (120,100),CH%:BOOM%=0
  104. 1000  GOTO 70
  105. 1010  ' INSTRUCTIONS
  106. 1020  SCREEN 0,1:COLOR 1,0:WIDTH 40:KEY OFF:CLS
  107. 1030  LOCATE 1,10:COLOR 21:PRINT "ANTI-BALLISTIC-MISSILE
  108. 1040  LOCATE 2,16:COLOR 5:PRINT"BY ED DAVIS"
  109. 1050  LOCATE 4,5:COLOR 7:PRINT "You are the commander of an"
  110. 1060  LOCATE 5,3:PRINT "anti-ballistic missile defense system."
  111. 1070  LOCATE 6,3:PRINT "Your mission is to defend the IBM"
  112. 1080  LOCATE 7,3:PRINT "East coast sites from the enemy."
  113. 1090  LOCATE 9,5:PRINT "The enemy has 12 missiles to fire"
  114. 1100  LOCATE 10,3:PRINT "at your 6 locations.  Your missiles"
  115. 1110  LOCATE 11,3:PRINT "will destroy his if within range."
  116. 1120  LOCATE 12,3:PRINT "You may choose the megatonnage of"
  117. 1130  LOCATE 13,3:PRINT "your missiles, but will get a higher"
  118. 1140  LOCATE 14,3:PRINT "score with smaller warhead sizes."
  119. 1150  LOCATE 15,3:PRINT "The ememy does have MIRV capability."
  120. 1160  LOCATE 18,3:PRINT "WHAT SIZE (3-9) WARHEAD DO YOU WANT?:"
  121. 1170  LOCATE 20,3:PRINT "       3=SMALL (EXPERT)"
  122. 1180  LOCATE 21,3:COLOR 2:PRINT "       4=NORMAL(GOOD)":COLOR 7
  123. 1190  LOCATE 22,3:PRINT "       5=BIG   (BEGINNER)
  124. 1200  LOCATE 23,3:PRINT "       9=WOW!  (CHICKEN)
  125. 1210  DEF SEG=0:POKE 1050,PEEK(1052)
  126. 1220  K$=INKEY$:IF K$="" THEN 1220
  127. 1230  IF VAL(K$)>2 THEN WH%=VAL(K$) ELSE GOTO 1220
  128. 1240  CLS:LOCATE 3,18:SCREEN 0,1
  129. 1250  PRINT" **** MISSILE CONTROLS FOR ABM2 ****
  130. 1260  LOCATE 6,3:PRINT"YOU CONTROL THE TARGET AREA OF YOUR"
  131. 1270  PRINT"ABM'S THRU THE USE OF THE DIRECTIONAL"
  132. 1280  PRINT"KEYS:":PRINT
  133. 1290  COLOR 20:PRINT CHR$(24);:COLOR 7:PRINT "  -RAISES SIGHTS"
  134. 1300  COLOR 20:PRINT CHR$(25);:COLOR 7:PRINT "  -LOWERS SIGHTS"
  135. 1310  COLOR 20:PRINT CHR$(26);:COLOR 7:PRINT "  -MOVES SIGHTS TO RIGHT"
  136. 1320  COLOR 20:PRINT CHR$(27);:COLOR 7:PRINT "  -MOVES SIGHTS TO LEFT"
  137. 1330  COLOR 20:PRINT "(Esc)";:COLOR 7:PRINT" -KEY LAUNCHES MISSILES"
  138. 1340  LOCATE 23,5:PRINT"PRESS ANY KEY TO BEGIN....GOOD LUCK!";
  139. 1350  I$=INPUT$(1)
  140. 1360  RETURN
  141. 1370  ' CITIES NOT ALL DESTROYED
  142. 1380  NT%=0:FOR I=0 TO 5:NT%=NT%+T%(0,I):NEXT I
  143. 1390  CLS:COLOR 9,7
  144. 1400  PLAY"MBCDEFAB"
  145. 1410  LOCATE 4,11:PRINT " CONGRATULATIONS! "
  146. 1420  LOCATE 8,5:PRINT" YOU HAVE WON THE BATTLE.."
  147. 1430  LOCATE 10,5:PRINT NT%;" IBM LOCATIONS REMAIN"
  148. 1440  SC=SC+50:IF SC>HSC THEN HSC=SC
  149. 1450  LOCATE 12,5:PRINT "YOUR SCORE IS :";SC
  150. 1460  LOCATE 13,5:PRINT"THE HIGHEST SCORE IS:";HSC;" POINTS"
  151. 1470  RS%=RS%-1:IF RS%<0 THEN RS%=0
  152. 1480  LOCATE 19,5:PRINT"THE ENEMY'S WARHEAD PERFORMANCE ":PRINT"      IS NOW ";RS%
  153. 1490  LOCATE 22,5:PRINT"DO YOU WISH TO PLAY AGAIN (Y/N)"
  154. 1500  K$=INKEY$:IF K$="" THEN 1500
  155. 1510  IF K$="N" OR K$="n" THEN CLS:END
  156. 1520  IF K$="y" OR K$="Y" THEN 1550
  157. 1530  GOTO 1500
  158. 1550  LOCATE 23,5:PRINT" CHANGE YOU WARHEAD SIZE? (Y/N)     "
  159. 1560  K$=INKEY$:IF K$="n" OR K$="N" THEN GOTO 60
  160. 1570  IF K$="y" OR K$="Y" THEN GOSUB 1010:GOTO 60
  161. 1580  GOTO 1560
  162. 1590  END
  163. 1600  K$=RIGHT$(INKEY$,1):IF (K$="") THEN GOTO 110
  164. 1610  KK$=INKEY$:IF KK$<>"" GOTO 1610
  165. 1620  J=INSTR("HPMK"+CHR$(27),K$):ON J GOTO 1640,1660,1680,1700,1720
  166. 1630  GOTO 110
  167. 1640  SY=SY-10:IF SY<1 THEN SY=1
  168. 1650  GOTO 110
  169. 1660  SY=SY+10:IF SY>150 THEN SY=150
  170. 1670  GOTO 110
  171. 1680  X=X+10:IF X>298 THEN X=298
  172. 1690  GOTO 110
  173. 1700  X=X-10:IF X<5  THEN X=5
  174. 1710  GOTO 110
  175. 1720  B%=1
  176. 1730  GOTO 110
  177. 1740  ' COLOR MONITOR-MONOCHROME MONITOR SWITCH    EMD 11-81
  178. 1750  CLS
  179. 1760  PRINT:PRINT"IF YOU WANT TO TOGGLE MONOCHROME/COLOR  THEN;"
  180. 1770  PRINT"   FOR COLOR PRESS - C"
  181. 1780  PRINT"   FOR MONO  PRESS - M"
  182. 1790  PRINT"   FOR NO CHANGE PRESS ANY OTHER KEY."
  183. 1800  K$=INKEY$:IF K$="" GOTO 1800
  184. 1810  IF K$="C" OR K$="c" THEN GOSUB 1930:END
  185. 1820  IF K$="M" OR K$="m" THEN GOSUB 1850:END
  186. 1830  CLS
  187. 1840  PRINT"@@@@@@@@@@@@    NO CHANGE   @@@@@@@@@@@@@@":END
  188. 1850  REM switch to monochrome adapter
  189. 1860  DEF SEG=0
  190. 1870  POKE &H410,(PEEK(&H410) OR &H30)
  191. 1880  DEF SEG
  192. 1890  LOCATE ,,1,12,13
  193. 1900  SCREEN 0
  194. 1910  WIDTH 80
  195. 1920  RETURN
  196. 1930  REM switch to color/graphics adapter
  197. 1940  DEF SEG=0
  198. 1950  POKE &H410,(PEEK(&H410) AND &HCF) OR &H20
  199. 1960  DEF SEG
  200. 1970  LOCATE ,,1,6,7
  201. 1980  SCREEN 0
  202. 1990  WIDTH 40
  203. 2000  RETURN
  204. 10000  REM  ++++++++ TEST LOGO FOR E. DAVIS PGMS..   7/82 +++++++++++++
  205. 10010  CLS:SCREEN 1,0:COLOR 0,1:KEY OFF
  206. 10020  LINE (20,40)-(160,40):LINE -(166,50):LINE -(40,50)
  207. 10030  LINE -(87,120):LINE -(112,120):LINE -(120,130):LINE -(80,130)
  208. 10040  LINE (20,40)-(80,130)
  209. 10050  LINE(20,40)-(0,70):LINE -(60,160):LINE -(100,160)
  210. 10060  LINE(60,160)-(80,130):LINE(100,160)-(120,130):LINE (166,50)-(146,80):LINE -(60,80)
  211. 10070  LINE (66,170)-(71,160)
  212. 10080  LINE(66,170)-(86,200):LINE -(200,30):LINE -(180,0):LINE -(152,40)
  213. 10090  LINE (125,80)-(98,120):LINE (180,0)-(190,0)
  214. 10100  LINE-(210,30):LINE -(200,30)
  215. 10110  LINE (210,30)-(97,200)' RIGHT HAND PIC
  216. 10120  LINE(204,40)-(230,40):LINE-(290,130):LINE-(142,130)
  217. 10130  LINE(198,50)-(222,50):LINE -(270,120):LINE -(150,120)
  218. 10140  LINE (178,80)-(203,80):LINE -(222,50):LINE (203,80)-(230,120)
  219. 10150  LINE (290,130)-(270,160):LINE -(122,160):LINE (85,200)-(98,200)
  220. 10160  PAINT (140,100),3,3
  221. 10170  PAINT (160,100),1,3:PAINT (100,70),1,3:PAINT (150,150),1,3:PAINT (200,70),1,3:PAINT (100,150),1,3
  222. 10180  PAINT (40,100),3,3:PAINT (240,100),3,3
  223. 10190  PAINT (65,100),2,3:PAINT (260,100),2,3:PAINT (195,20),2,3
  224. 10200  N=N+1:IF N=4 THEN RETURN
  225. 10210  FOR I=1 TO 300:COLOR 0,0:NEXT I
  226. 10220  LOCATE 2,8:PRINT"DAVIS DISK"
  227. 10230  LOCATE 23,25:PRINT"           "
  228. 10240  FOR I=1 TO 300:COLOR 0,1:NEXT
  229. 10250  LOCATE 2,8:PRINT"           "
  230. 10260  LOCATE 23,25:PRINT CHR$(1)+"  ENJOY! "+CHR$(1)
  231. 10270  GOTO 10200
  232.